package org.xg.study.boot.common.utils;

import cn.hutool.core.util.StrUtil;
import org.xg.study.boot.common.error.ServiceException;

/**
 * @author CMG
 * @version 1.0
 * @cLassName ToolsUtil
 * @description
 * @date 2021/8/26 9:11
 **/
public class ToolsUtil {
    /**
     * 将搜索字符替换指定字符，如不存在末尾添加
     * @param source
     * @param searchStr
     * @param replacement
     * @return
     */
    public static String pointToComma(CharSequence source,CharSequence searchStr, CharSequence replacement){
        String target = StrUtil.replace(source,searchStr,replacement);
        if(target.indexOf(replacement.toString()) == -1){
            target = StrUtil.appendIfMissing(target,replacement);
        }
        return target;
    }

    /**
     * 去除右侧remove字符
     * @param source
     * @param remove
     * @return
     */
    public static String rtrim(CharSequence source,CharSequence remove){
        int length = source.length();
        int index;
        for(index = 0;index < length; index++){
            CharSequence curSub = StrUtil.sub(source,length-index-1,length-index);
            if(!curSub.equals(remove)){
                break;
            }
        }
        return StrUtil.sub(source,0,length-index);
    }

    /**
     * 参照 Assert.isTrue 抛出为ServiceException
     * @param expression
     * @param message
     */
    public static void isTrue(boolean expression, String message) {
        if (!expression) {
            throw new ServiceException(message);
        }
    }

    /**
     * oracle的函数lpad
     * 创建人：jinzhou。li
     * 创建日期：20201018
     * @param s  源字符串
     * @param n  源字符串需要填充到的长度
     * @param replace   代表在s右侧填充到指定长度的字符
     * @return
     */
    public static String lpad(String s, int n, String replace) {
        while (s.length() < n) {
            s = replace+s;
        }
        return s;
    }
    /**
     * oracle的函数rpad
     * 创建人：jinzhou。li
     * 创建日期：20201018
     * @param s  源字符串
     * @param n  源字符串需要填充到的长度
     * @param replace   代表在s右侧填充到指定长度的字符
     * @return
     */
    public static String rpad(String s, int n, String replace) {
        while (s.length() < n) {
            s = s+replace;
        }
        return s;
    }
}
